package com.zz.admin.testDataTypesManagement.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zz.common.base.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

/**
 * 数据类型示例实体API类
 *
 * @author zl
 * @since 2025-11-23 14:28:32
 */
@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "数据类型示例")
public class TestDataTypesDto extends BaseDto {

    @ApiModelProperty(value = "主键ID", name = "id")
    private String id;

    @ApiModelProperty(value = "用户名(varchar)", name = "username")
    private String username;

    @ApiModelProperty(value = "性别(char)", name = "gender")
    private String gender;

    @ApiModelProperty(value = "描述(text)", name = "description")
    private String description;

    @ApiModelProperty(value = "出生日期(date)", name = "birthDate")
    private LocalDate birthDate;

    @ApiModelProperty(value = "创建时间(datetime)", name = "createdDatetime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdDatetime;

    @ApiModelProperty(value = "登录时间(time)", name = "loginTime")
@JsonFormat(pattern = "HH:mm:ss")
    private LocalTime loginTime;

    @ApiModelProperty(value = "更新时间(timestamp)", name = "updatedAt")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedAt;

    @ApiModelProperty(value = "年龄(int)", name = "age")
    private Integer age;

    @ApiModelProperty(value = "总浏览次数(bigint)", name = "totalViews")
    private Long totalViews;

    @ApiModelProperty(value = "身高(float)", name = "height")
    private BigDecimal height;

    @ApiModelProperty(value = "体重(double)", name = "weight")
    private BigDecimal weight;

    @ApiModelProperty(value = "薪资(decimal)", name = "salary")
    private BigDecimal salary;

    @ApiModelProperty(value = "本地值", name = "localeValue")
    private Map<String, Object> localeValue;

    @ApiModelProperty(value = "删除标识(0:未删除 1:已删除)", name = "delFlag")
    private String delFlag;


    // ================= 以下为自定义字段 =================
    private String localeValueStr;

}
